/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#pragma once

#include "OmenConfig.h"
#include "IOmenArchive.h"

#include <list>
#include <string>
#include <memory>
#include <stdexcept>

namespace Omen 
{
    class OMEN_API IArchiveReader 
    {
     public:
       virtual ~IArchiveReader() {};        /// <summary>Releases any resources owned by the reader</summary>

       virtual bool canOpenArchive(const std::wstring &filename) = 0; /// <summary>Checks whether the reader can open an archive</summary><param name="filename">Name of the file that will be checked</param>
       virtual IArchive* openArchive(const std::wstring &filename) = 0; /// <summary>Opens an archive for reading</summary><param name="filename">Filename of the archive to open</param>
    };
} // namespace Omen

/// EOF